Installer un serveur web/php/mysql chez soi

Cet article traite de l'installation et de la configuration d'un serveur web/php couplé à un serveur SQL sous environnement Microsoft Windows 2K/XP.
Pré-requis : Il est évident que pour faire un site dynamique en PHP, il est indispensable de connaitre le HTML auparavant !


Nous allons nous servir d'EasyPHP, qui est un logiciel regroupant Apache, PHP et MySQL. Il permet une installation et une utilisation facile de ces serveurs de façon à pouvoir tester des pages sans trop de problèmes de configuration.
Si vous ne désirez pas utiliser EasyPHP, sachez qu'il existe d'autres solutions relativement semblables : MonServeur, WAMPserveur, AppServ,..

La dernière version est la 1.7 1.8 ; elle regroupe :

  • Apache 1.3.27 Apache 1.3.33 : le serveur web le plus connu/utilisé
  • PHP 4.3.3 PHP 4.3.10 : gestion des pages PHP (serveur PHP couplé à Apache)
  • MySQL 4.0.15 MySql 4.1.9 : serveur de base de données SQL
  • PhpMyAdmin 2.5.3 phpMyAdmin 2.6.1 : interface de gestion de MySQL, en PHP
    Vous pouvez la télécharger , c'est un programme gratuit (comme tous ses composants d'ailleurs).

  • Avant de continuer, je tiens à préciser que EasyPHP a été concu pour être une plate-forme de développement et non une solution d'hébergement professionnelle.

    Lancez l'installation, et installez tout par défaut.
    Lancez easyphp.exe, un icône se met dans la barre des taches. Si vous voyez un rond rouge qui clignote, ca marche ! Sinon faites un clique droit dessus/démarrer (il faut parfois répéter cette opération plusieurs fois avant que ca marche :/)
    Vous pouvez par ailleurs vérifier que les processus apache et mysqld sont bien lancés en faisant un "ctrl alt suppr" et en allant dans l'onglet processus.

    Allez dans C:\Program files\EasyPHP1.7\ : c'est le répertoire d'installation par défaut. Voici les différents répertoires présents :

    Pour tester si le serveur PHP marche, créez un fichier texte, et placez-y ces quelques lignes :
    <?php phpinfo(); ?>

    Nommez ce fichier test.php et placez-le dans C:\Program files\EasyPHP\www\.
    Vous pouvez maintenant lancer votre navigateur et taper l'addresse "http://localhost/test.php" ("localhost" désigne votre ordinateur en local ; cela équivaut à l'IP 127.0.0.1). Si pleins d'infos s'affichent, ça marche et ça vaut mieux parce que sinon il va falloir consulter la FAQ officielle !

    Vous pouvez arrêter là la manipulation d'EasyPHP pour vous consacrer entièrement à votre site, ou alors lire cet article jusqu'au bout :)

    Epatant ! Alors voyons la suite !
    Tapez http://localhost/home/ dans votre navigateur préféré.
    Vous tombez sur le fichier "index.php" (fichier lu par défaut par Apache quand on lui indique un répertoire) du répertoire "home" que je vous ai brièvement décrit tout à l'heure. Elle vous permet de :
    Bien sur il est possible de modifier tout cela autrement qu'en passant par cette section d'administration : c'est ce que nous allons voir maintenant.

    Chaque composant d'EasyPHP a un fichier de configuration spécifique. Pour modifier la configurations de l'un des serveurs, il suffit d'éditer son fichier de configuration (avec n'importe quel éditeur de texte), de le modifier, et de sauveguarder. (utilisez la fonction rechercher pour trouver les lignes citées ci dessous)
    NB : dans tous les fichiers suivant, les commentaires sont précédés d'un dièze (#) ATTENTION : il redémarrer les serveurs pour qu'ils prennent en compte la nouvelle configuration (clic droit sur l'icône d'EasyPHP situé dans la barre des taches/Redémarrer)

    les principaux paramètres de httpd.conf : Voilà j'ai fini ce bref apercu des fonctionnalités de EasyPHP. Normalement vous devriez pouvoir faire pas mal de choses avec ce modeste tutorial. Pour en savoir plus, consultez le site officiel http://www.easyphp.org.

    Pour aller plus loin :


    Gestion des droits

    Il est possible de limiter l'accès à votre serveur web de 2 manières : ATTENTION : La directive AllowOverride None située dans httpd.conf permet de désactiver la prise en compte des .htaccess.

    Voici un exemple d'accès restreint au répertoire /prive :
    Location : Cible le répertoire dont on va définir les droits
    Options : Peut important dans notre cas
    AllowOverride : Permet de désactiver l'utilisation des .htaccess

    Vous remarquerez qu'il y a des directives communes !
    AuthName : Définit le message à afficher à l'internaute quand il arrivera dans le dossier.
    AuthType : Définit le mode d'encryption
    AuthUserFile : Définit le fichier contenant les logins/pass
    Require : Définit quelles personnes/groupes ont une permission d'accès

    Maintenant, il vous faut créer le fichier .htpasswd qui va contenir les login/pass des utilisateurs valides.
    Pour cela, on va se servir d'un programme situé dans ../apache/bin/ nommé htpasswd. Ouvrez une console et aller dans le répertoire, puis tapez : htpasswd nom_du_fichier login (avec l'option "-c" si le fichier n'existe pas)
    Le programme vous demandera d'entrer un mot de passe et de le confirmer, puis ajoutera l'utilisateur dans le fichier spécifié (qu'il faut nommé et mettre dans le répertoire que vous avez spécifié plus haut).

    divers..
    Personnaliser sa page d'erreur 404 : C'est la page qui s'affiche par défaut lorsqu'on demande au serveur web une page qu'il ne trouve pas. Pour afficher une autre page à la place, modifier votre .htaccess en rajoutant cette ligne : ErrorDocument 404 /new_404_page.php.

    Pour permettre à chaque utilisateur de faire des pages web accessible via http://server/~user/ il faut activer le module userdir, et décommenter ces lignes :

    # UserDir is now a module
    UserDir public_html
    UserDir disabled root
    
            AllowOverride FileInfo AuthConfig Limit
            Options Indexes SymLinksIfOwnerMatch IncludesNoExec
    
    
    A ce moment tout document situé dans le dossier ~/public_html/ de la home d'un utilisateur sera accessible depuis le web.